<?php

namespace app\common\model;

use think\Model;

/**
 * @property int $id ID
 * @property string $type_name 类型名称
 * @property int $parent_type_id 父类型ID
 * @property int $root_type_id 根类型ID
 * @property int $output_code 输出编号
 * @property Type $parent_type 父类型
 * @property Type $root_type 根类型
 */
class Type extends Model
{
    // 数据表名
    protected $table = 'types';
    // 主键
    protected $pk = 'id';
    // 保存时自动补完
    protected $auto = [];
    // 新增时自动补完
    protected $insert = [];
    // 更新时自动补完
    protected $update = [];
    // 创建时间字段
    protected $createTime = false;
    // 更新时间字段
    protected $updateTime = false;
    // 是否需要自动写入时间戳
    protected $autoWriteTimestamp = false;
    // 类型声明
    protected $type = [
        'id'             => 'integer',
        'type_name'      => 'string',
        'parent_type_id' => 'integer',
        'root_type_id'   => 'integer',
    ];

    /**
     * 定义parent_type属性
     */
    public function getParentTypeAttr($value, $data)
    {
        return self::where('id', $data['parent_type_id'])->find();
    }

    /**
     * 定义parent_type属性
     */
    public function getRootTypeAttr($value, $data)
    {
        return self::where('id', $data['root_type_id'])->find();
    }
}
